En la entrada anterior "Haciendo backup de Dokuwiki a través de un script" detallaba cómo hacer backup del wiki. Uno de los puntos a mejorar era que las copias de seguridad eran locales, y en caso de fallo del pendrive, hacer copia de seguridad no serviría de nada...
Pues bien, hoy el pendrive ha fallado. Ayer por la noche estuve editando artículos en el wiki con normalidad. Esta misma tarde estaba trabajando en uno de las entradas y la "previsualización" de las páginas que estaba editando ha empezado a tardar más de lo normal. Y en un momento dado, cuando he dado a guardar, he recibido un "Error 500: Internal server error". He pensado que era nginx, que se había colgado, así que me he conectado y, tras comprobar que el proceso de nginx estaba funcionando, he decidido reiniciarlo.
Los comandos que he utilizado han sido (los dejo como referencia):
service nginx status (para comprobar si nginx estaba en marcha, no hace falta ser root)
sudo service nginx restart (para reiniciar nginx)
Accediendo a la url del servidor web, seguía obteniendo un "internal server error".
He mirado el fichero de error ubicado en /var/log/nginx/error.log y me ha dado una buena pista de lo que pasaba:
2015/05/30 18:06:15 [error] 2523#0: *2941 FastCGI sent in stderr: "PHP message: PHP Warning: include(/media/pendrive4gb/www/dokuwiki/lib/tpl/dokuwiki/main.php): failed to open stream: No such file or directory in /media/pendrive4gb/www/dokuwiki/inc/actions.php on line 206 PHP message: PHP Warning: include(): Failed opening '/media/pendrive4gb/www/dokuwiki/lib/tpl/dokuwiki/main.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /media/pendrive4gb/www/dokuwiki/inc/actions.php on line 206" while reading response header from upstream, client: 192.168.1.68, server: localhost, request: "GET /dokuwiki/doku.php?id=conectar_iso&do=edit HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "192.168.1.50", referrer: "http://192.168.1.50/dokuwiki/doku.php?id=conectar_iso"
Por cierto, el comando para copiar un fichero de la RPi al Mac es:
scp pi@192.168.1.50:/var/log/nginx/error.log ~/error.log
La primera pista viene a decir que no encuentra el fichero main.php que ha sido llamado desde una instrucción include llamada desde actions.php: Es decir, cuando he lanzado la previsualización de la entrada del wiki que estaba editando, algo ha pasado y no ha sido posible cargar el fichero donde se encuentra el código necesario para llevar a cabo esta acción. (He resaltado en negrita la parte más relevante)
Así que lo siguiente que he hecho es mirar si el fichero estaba donde tenía que estar (el main.php es el fichero principal de Dokuwiki). Pero resulta que no era un problema del fichero, sino que el USB donde estaba almacenado todo dokuwiki (como comenté en esta entrada al reinstalar la RPi).
Mi primer pensamiento es que, por algún motivo, se habría desmontado. He intentado montarlo manualmente y he descubierto que el sistema no veía el dispositivo conectado.
He reiniciado la RPi pero tampoco ha funcionado. Así que finalmente me he levantado, he ido a la habitación donde tengo la RPi, he despinchado el pendrive y lo he vuelto a pinchar.
De vuelta al despacho, he intentado montarlo de nuevo. Nada.
Después de un par de viajes más, he decidido pinchar el USB en el Mac para ver qué estaba pasando con el pendrive, si es que le había pasado algo...
Y por lo visto, el pendrive se ha muerto y no funciona. Como no tiene ningún led ni nada por el estilo, no hay manera de saber qué le pasa...
En cualquier caso, lo importante son las conclusiones del análisis post-mortem del fallo del pendrive:
- Es necesario hacer copias de seguridad de forma regular. OK
- Es esencial que los backups se realicen o muevan a una ubicación diferente a la original. FAIL (lo tenía pendiente y ¡zas!)
- Hay que comprobar los backups de forma periódica. OK
Quiero destacar el tercer punto, que no siempre se realiza...
En mi caso, después de la última copia, decidí simular un disaster recovery y montar los datos en una instalación local de Dokuwiki. Todo funcionó como debía y no le di más importancia. Después del bajonazo de pensar que había perdido la información he recordado la prueba y, afortunadamente, no eliminé la copia local restaurada del wiki (aunque sí que había eliminado el fichero de backup).
Así que tengo sólo he perdido los cambios que realicé entre ayer y hoy; es malo, pero podría haber sido mucho peor.
Ahora queda pendiente volver a montar el wiki en un nuevo pincho... Pero me servirá para repasar y consolidar los conocimientos que documenté en un documento que tengo pendiente de colgar en "Cómo instalar Dokuwiki en Raspberry Pi sobre un pendrive" colgado en MDWikiDocs.
Comentarios